#include "matrixprocessor.h"
#include <algorithm>

MatrixProcessor::MatrixProcessor(QObject *parent) : QObject(parent) {}

QList<QPoint> MatrixProcessor::processMatrix(const std::vector<std::vector<int>>& matrix) const
{
    return findMaxValuePositions(matrix);
}

QList<QPoint> MatrixProcessor::findMaxValuePositions(const std::vector<std::vector<int>>& matrix) const
{
    QList<QPoint> result;
    // if(matrix.empty() || matrix[0].empty()) return result;

    // int maxValue = matrix[0][0];

    // // 第一次遍历找最大值
    // for(size_t i = 0; i < matrix.size(); ++i) {
    //     for(size_t j = 0; j < matrix[i].size(); ++j) {
    //         if(matrix[i][j] > maxValue) {
    //             maxValue = matrix[i][j];
    //         }
    //     }
    // }

    // // 第二次遍历记录所有最大值位置
    // for(size_t i = 0; i < matrix.size(); ++i) {
    //     for(size_t j = 0; j < matrix[i].size(); ++j) {
    //         if(matrix[i][j] == maxValue) {
    //             result.append(QPoint(static_cast<int>(j), static_cast<int>(i))); // QPoint(x, y)对应(col, row)
    //         }
    //     }
    // }

    result.append(QPoint(1,0));
    result.append(QPoint(2,0));
    result.append(QPoint(3,0));
    result.append(QPoint(1,1));
    result.append(QPoint(2,1));
    result.append(QPoint(2,2));
    result.append(QPoint(2,3));
    result.append(QPoint(2,4));
    return result;
}
